#!/bin/bash
#循环标识
keep=1
#开始循环
while [[ "$keep" != 0 ]]
do
#提取第一行日志日期
date=`head -n 1 log-test | awk -F ' ' '{print $4}'`
#将日志中的时间转换为空格间隔的时间格式
tmp_date=`echo ${date:1} | sed 's/\// /g' | sed 's/:/ /'`
#重新格式化日期
new_date=`date -d "$tmp_date" +%Y%m%d`
#判断是否执行完毕后退出
k_date=`date -d '20 days ago' +%Y%m%d`
if [ "$new_date" == "$k_date" ]; then
        keep=0
fi
#匹配指定日期行数
the_date=${date%%:*}
line=`grep -c '\'$the_date log-test`
#提取指定行数日志，保存为与日期一致的日志文件
head -$line log-test > 'access_'$new_date'.log';
#删除指定行数日志
sed -i "1,$line d" log-test;
done